From: Keir Fraser Date: Wed, 5 Aug 2009 13:56:29 +0000 (+0100) Subject: Revert 20006:edf21ab7d7a4 and 20023:2b28320c6f8c. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~13516 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=3c11d89e35a0114fa338e5652c5c76f9cc6981e5;p=xen.git Revert 20006:edf21ab7d7a4 and 20023:2b28320c6f8c. --- diff --git a/tools/python/xen/xend/XendConfig.py b/tools/python/xen/xend/XendConfig.py index 7fd33b9159..9ef008c54e 100644 --- a/tools/python/xen/xend/XendConfig.py +++ b/tools/python/xen/xend/XendConfig.py @@ -1055,7 +1055,10 @@ class XendConfig(dict): if domain.getDomid() is not None: sxpr.append(['domid', domain.getDomid()]) - if not legacy_only: + if legacy_only: + sxpr.append(['cpu_weight', int(self['vcpus_params'].get('weight', 256))]) + sxpr.append(['cpu_cap', int(self['vcpus_params'].get('cap', 0))]) + else: for name, typ in XENAPI_CFG_TYPES.items(): if name in self and self[name] not in (None, []): if typ == dict: @@ -1085,10 +1088,6 @@ class XendConfig(dict): if self.has_key(legacy) and self[legacy] not in (None, []): sxpr.append([legacy, self[legacy]]) - if self.has_key('vcpus_params'): - sxpr.append(['cpu_weight', int(self['vcpus_params'].get('weight', 256))]) - sxpr.append(['cpu_cap', int(self['vcpus_params'].get('cap', 0))]) - if self.has_key('security_label'): sxpr.append(['security_label', self['security_label']]) diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index 020cecd4c6..cdf650843f 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -484,6 +484,7 @@ class XendDomainInfo: # we just ignore it so that the domain can still be restored log.warn("Cannot restore CPU affinity") + self._setSchedParams() self._storeVmDetails() self._createChannels() self._createDevices() @@ -2449,8 +2450,6 @@ class XendDomainInfo: raise VmError("Cpu cap out of range, valid range is from 0 to %s for specified number of vcpus" % (self.getVCpuCount() * 100)) - xc.sched_credit_domain_set(self.domid, weight, cap) - # Test whether the devices can be assigned with VT-d self.info.update_platform_pci() pci = self.info["platform"].get("pci") @@ -2571,6 +2570,12 @@ class XendDomainInfo: for v in range(0, self.info['VCPUs_max']): xc.vcpu_setaffinity(self.domid, v, cpumask) + def _setSchedParams(self): + if XendNode.instance().xenschedinfo() == 'credit': + from xen.xend import XendDomain + XendDomain.instance().domain_sched_credit_set(self.getDomid(), + self.getWeight(), + self.getCap()) def _initDomain(self): log.debug('XendDomainInfo.initDomain: %s %s', @@ -2587,6 +2592,9 @@ class XendDomainInfo: # distribution for NUMA systems. self._setCPUAffinity() + # Set scheduling parameters. + self._setSchedParams() + # Use architecture- and image-specific calculations to determine # the various headrooms necessary, given the raw configured # values. maxmem, memory, and shadow are all in KiB.